from pinecone import Pinecone, ServerlessSpec

pc = Pinecone(api_key="pcsk_3q57Z8_E4VmVtFgcXQdmPDy2WkvM4vE33u2yQkjVegKobLBKy1s8KSAwQohW2SJiPFgpw7")
# 索引名称
index_name = "mnist-index"

################### 检查、清除之前创建的索引 ###################
# 获取现有索引列表
existing_indexes = Pinecone.list_indexes()

# 检查索引是否存在，如果存在就删除
# 这个if是否需要，要看情况而定
# 比如有的时候，如果不想要重复删除在创建，这个if就可以不要
if any(index['name'] == index_name for index in existing_indexes):
    print(f"索引 '{index_name}' 已存在，正在删除...")
    Pinecone.delete_index(index_name)
    print(f"索引 '{index_name}' 已成功删除。")
else:
    print(f"索引 '{index_name}' 不存在，将创建新索引。")
################### 检查、清除之前创建的索引 ###################

index_name = "mnist-index" # 索引名称

# 创建新索引
print(f"正在创建新索引 '{index_name}'...")
Pinecone.create_index(
    name=index_name,
    dimension=64,  # MNIST 每个图像展平后是一个 64 维向量
    metric="euclidean",  # 使用欧氏距离
    spec=ServerlessSpec(
        cloud="aws",
        region="us-east-1"
    )
)
print(f"索引 '{index_name}' 创建成功。")

# 连接到索引
index = Pinecone.Index(index_name)
print(f"已成功连接到索引 '{index_name}'。")